# 七段数码管的绘制
import turtle as t
from time import localtime, strftime


# 定义绘制数码管的间隔
def seperate():
    t.fd(6)


# 定义提笔和落笔的函数
def penupordown(de):
    if de:
        t.pendown()
    t.fd(34)
    t.penup()
    seperate()
    t.right(90)
    seperate()


# 根据数字绘制对应的七段数码管
def draw(digit):
    penupordown(True) if digit in [2, 3, 4, 5, 6, 8, 9] else penupordown(False)
    penupordown(True) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else penupordown(False)
    penupordown(True) if digit in [0, 2, 3, 5, 6, 8, 9] else penupordown(False)
    penupordown(True) if digit in [0, 2, 6, 8] else penupordown(False)
    t.fd(-6)
    t.left(90)
    seperate()
    penupordown(True) if digit in [0, 4, 5, 6, 8, 9] else penupordown(False)
    penupordown(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else penupordown(False)
    penupordown(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else penupordown(False)
    t.seth(0)


# 读入数据，利用for循环绘制每个数字
def inputdata(data):
    t.pencolor("red")
    for i in data:
        if i == "!":
            t.write("年", font=("Arial", 22, "normal"))
            t.fd(35)
            t.pencolor("blue")
        elif i == "@":
            t.write("月", font=("Arial", 22, "normal"))
            t.fd(35)
            t.pencolor("green")
        elif i == "#":
            t.write("日", font=("Arial", 22, "normal"))
            t.fd(35)
            t.pencolor("black")
        elif i == "$":
            t.write("时", font=("Arial", 22, "normal"))
            t.fd(35)
        elif i == "^":
            t.write("分", font=("Arial", 22, "normal"))
            t.fd(35)
        elif i == "&":
            t.write("秒", font=("Arial", 22, "normal"))
            t.fd(35)
        else:
            pencolor(eval(i))
            draw(eval(i))
        t.fd(35)


# 控制画笔颜色的函数
def pencolor(n):
    colorlist = [
        "tomato",
        "pink",
        "cyan",
        "black",
        "magenta",
        "brown",
        "green",
        "blue",
        "yellow",
        "purple",
    ]
    # t.pencolor(colorlist[n])


# 主函数，设置画布和速度，获取当前时间，调用绘制函数
def main():
    t.setup(1500, 400)
    t.up()
    t.speed(20)
    t.goto(-650, 25)
    t.pensize(5)
    Data = list(strftime("%Y!%m@%d#%H$%M^%S&", localtime()))
    inputdata(Data)
    t.hideturtle()
    # 手动关闭画布
    t.done()


main()
